package org.nf.web.servlet;

import java.lang.reflect.Parameter;

/**
 * @author wangl
 * @date 2021/5/26
 * 抽象的参数类型转换器，由不同的子类转换器来实现具体的转换逻辑
 */
public interface MethodArgumentResolver {
    /**
     * 是否支持当前的参数解
     * @param parameter 方法参数信息
     * @return true支持，false不支持
     */
    boolean supports(Parameter parameter);

    /**
     *
     * 抽象的参数解析方法，由子类实现
     * @param parameter 方法参数信息
     * @param servletApi 请求和相应对象
     * @return 解析好的参数对象
     * @throws Exception 解析时残生的异常
     */
    Object resolve(Parameter parameter, ServletApi servletApi) throws Exception;
}
